/**
 * 实现 apply 函数
 * @param {Function} Fn 执行的函数
 * @param {object} obj 函数运行时，this指向的对象
 * @param {Array} args 函数运行时的参数，数组形式
 * @returns 
 */

export function apply(Fn, obj, args) {
  if (obj === undefined || obj === null) {
    obj = globalThis;
  }
  obj.temp = Fn;                  // 为 obj 添加临时的方法
  let result = obj.temp(...args); // 调用 temp 方法
  delete obj.temp;                // 删除 temp 方法
  return result;                  // 返回执行结果
}